/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package action;

import controller.Action;
import controller.ActionFactoryLivro;
import java.io.IOException;
import java.sql.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.IIOException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import model.Cliente;
import model.EstadoLivroDisponivel;
import model.EstadoLivroReservado;
import model.Livro;
import model.Reserva;
import persistence.ClienteDAO;
import persistence.LivroDAO;
import persistence.ReservaDAO;

/**
 *
 * @author Cristian
 */
public class FazerReservaAction implements Action {

    @Override
    public void execute(HttpServletRequest request, HttpServletResponse response) throws IIOException {
        String idCliente = request.getParameter("idCliente");
        String idLivro = request.getParameter("idLivro");
        String rg = request.getParameter("rg");
        String telefone = request.getParameter("telefone");
        String data_reserva = request.getParameter("data_reserva");
        String data_entrega = request.getParameter("data_entrega");

        String formatar[] = data_reserva.split("-");
        String ano = formatar[0];
        String mes = formatar[1];
        String dia = formatar[2];
        data_reserva = dia + "/" + mes + "/" + ano;

        String formatar2[] = data_entrega.split("-");
        String ano2 = formatar2[0];
        String mes2 = formatar2[1];
        String dia2 = formatar2[2];
        data_entrega = dia2 + "/" + mes2 + "/" + ano2;

        if (idCliente.equals("") || idLivro.equals("") || rg.equals("")
                || telefone.equals("") || data_reserva.equals("") || data_entrega.equals("")) {
            try {
                response.sendRedirect("index.jsp");
            } catch (IOException ex) {
                Logger.getLogger(GravarClienteAction.class.getName()).log(Level.SEVERE, null, ex);
            }
        } else {
            try {
                Cliente cliente = new Cliente();
                Livro livro = new Livro();
                Reserva reserva = new Reserva();

                cliente = ClienteDAO.getInstace().recuperaClientePorId(Integer.parseInt(idCliente));
                livro = LivroDAO.getInstace().recuperaLivroPorId(Integer.parseInt(idLivro));

                reserva.setCliente(cliente);
                reserva.setLivro(livro);
                reserva.setData_entrega(data_entrega);
                reserva.setData_reserva(data_reserva);

                ReservaDAO.getInstace().save(reserva);
                response.sendRedirect("cadastroRealizado.jsp");

            } catch (Exception e) {
                try {
                    response.sendRedirect("cadastroErro.jsp");
                } catch (IOException ex) {
                    Logger.getLogger(GravarClienteAction.class.getName()).log(Level.SEVERE, null, ex);
                }
            }

        }
    }
}
